package com.zmn.oms.model.dto.work.masterwork;


import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 类描述：工程师进行中工单DTO
 * @author heciqi
 * @date 2018/11/26 18:01
 */
@Data
public class WorkListItemDTO implements Serializable {
	private Long orderId;                                // 订单id
	private Long workId;                                 // 工单id
	private Integer type;                                // 订单类型：1 新单、2 返修单、3 退款单
	private Integer grabType;                            // 抢单类型：1指派，2抢单
	private Integer status;                              // 工单状态
	private Integer resultStatus;                        // 结果状态
	private Integer servCategId;                         // 服务类型id
	private String servCategName;                        // 服务类型名称 清洗、维修等
	private String street;                               // 街道
	private String address;                              // 客户地址
	private Double longitude;                            // 经度
	private Double latitude;                             // 纬度
	private Date dutyTime;                               // 预约时间
	private Date takeTime;                               // 工程师接单时间
	private Date contactTime;                            // 联系用户时间
	private Date visitTime;                              // 工程师上门时间
	private Integer platWork;                            // 做单平台标志：1.言而有信 2.啄木鸟
	private Integer bizType;                             // 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
	private Integer sourceType;                          // 来源类型：1普通 2厂商 3大客户
	private Integer member;          	                 // 会员标识：1 非， 2 是
	private Integer standardPrice;                       // 标准收费标识 ：1 非， 2 是
	private Integer finalPrice;                          // 一口价标识 ：1 非， 2 是
	private Integer delivery;                            // 是否需要拉修（1：不需要，2：需要）
	private Integer waitPart;                            // 是否待件（1：否，2：是）
	private Integer waitCancel;                          // 是否待取消（1：否，2：是）
	private String productInfo;                          // 产品信息
	private Integer reviewFlag;                          // 是否需要工程师审核 1：否 2：是
	private Integer waitPartsPost;                       // 邮寄旧件  1：否 2：是
	private Integer waitFactoryReview;                   // 是否有配件等待厂家审核 1：否 2：是
	private Integer highValueUser;                       // 高价值用户   1：否 2：是
	private String channelName;                          // 渠道名称
	private Integer channelId;                           // 渠道id
	private String outerId;                              // 外部工单号
	private Integer servItemType;                        // 服务项类型，目前仅支持两种类型： 1.工单服务项 2.故障服务项
	private String categOneName;						  // 产品一级分类名称
	private Integer serviceCompleteReviewStatus;		  // 服务完成审核状态 1.待审核 2. 审核成功 3. 审核失败
	private Integer discountActivityId; 				  // 活动id(迟到补偿活动id)， >0 表示符合迟到补偿配置，前端显示准时宝
	private Integer lateAmount; 						  // 迟到补偿金额。 不为空，表示有迟到补偿金额
	private Integer highValueOrder;                      // 优质订单  1：否，2：是
	private Integer highLevelEngineer;                  // 是否为高等级工程师
	// 完成工单用
	private Integer totalAmount;                         // 订单收入
	private Date completeTime;                           // 完成时间
	private Integer mainService;                         // 是否主工程师 1：否 2：是
	private Date accountTime;                          	 // 算账时间
	private Date failTime;                          	 // 失败时间
	private WorkSharingEstimateDTO sharingEstimate;      // 分润预估
	private WorkProgrammeDTO programme;      // 工单日程
	private Integer allowRefund; // 是否无忧退
	private Integer vipChannel;	 //VIP渠道
	private String endPartRetailTime; //截至报销时间

	/**
	 * 标签
	 */
	private List<WorkTagDTO> tagList;

	/**
	 * 需要邀评指引 1否 2是
	 */
	private Integer needGuideInviteComment;

	/**
	 * 是否发起收款，默认1不需要，2需要
	 */
	private Integer multipleAmount;

	/**
	 * 是否展示定金按钮，默认1不需要，2需要
	 */
	private Integer showDeposit;

	/**
	 * 最新的多次上门，默认0，多次上门状态
	 * @see com.zmn.oms.common.constant.OrderVisitStatusConsts#ORDER_VISIT_STATUS_APPLY
	 */
	private Integer multipleVisitStatus;

	/**
	 * 上门支付子状态
	 */
	private Integer multiplePayStatus;

	/**
	 * 申请取消人类型
	 */
	private Integer cancelApplyUserType;

	/**
	 * 是否剔除绩效
	 */
	private boolean isExcludePerformance = false;

	/**
	 * 预估收入金额
	 */
	private Integer forecastTotalAmount;

	/**
	 * 列表显示时间
	 */
	private String showTime;

	/**
	 * 列表显示文本
	 */
	private String showText;
}
